home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Chip: 2001 Haziran
/
CHIP Haziran2001.iso
/
prog
/
share
/
04
/
setup.exe
/
MM7.Cab
/
F456_mscommerce.actions5.asp.3A7A5E73_1F50_4F88_AB38_531BFA72E747
< prev
next >
Wrap
Text File
|
2000-08-17
|
8KB
|
269 lines
<!-- #INCLUDE FILE="../include/utils.runtime5.asp" -->
<!-- #INCLUDE FILE="../include/mscommerce.runtime5.asp" -->
<SCRIPT runat="server" language="JScript">
// *****************************************************************************
//
// actions/mscommerce.runtime5.asp
//
// Dynamic Link runtime support for Microsoft Commerce server.
//
// COPYRIGHT (c) 1999-2000 Adobe Systems Incorporated. All rights reserved.
//
// -----------------------------------------------------------------------------
// *****************************************************************************
// Commom Setup / Redirection
// *****************************************************************************
// -----------------------------------------------------------------------------
// SetupMSCommerce
//
// This function adds hidden fields for FinishMSCommerceAction(), below.
// -----------------------------------------------------------------------------
function SetupMSCommerce( successDest )
{
var thisURL = Request( "URL" ) + "?" + Request( "QUERY_STRING" );
Response.Write( "<input type=\"hidden\" name=\"$return\" value=\"" + thisURL + "\">" );
Response.Write( "<input type=\"hidden\" name=\"$success_dest\" value=\"" + successDest + "\">" );
}
// -----------------------------------------------------------------------------
// FinishMSCommerceAction
//
// After the action has completed, this function either redirects back to the
// caller or to $success_dest.
// -----------------------------------------------------------------------------
function FinishMSCommerceAction()
{
var dest = Request( "$success_dest" );
var nextPage = "";
if(( 0 < dest.Count )&&( 0 < String( dest ).length )){ // to avoid "undefined"
nextPage = absolutePath( Request( "$return" ), dest );
}else{
nextPage = Request( "$return" );
}
Response.Redirect( addArgs( nextPage, URLArgs() ));
}
// *****************************************************************************
// Add To Cart
// -----------------------------------------------------------------------------
// SetupAddToCart
// -----------------------------------------------------------------------------
function SetupAddToCart( contentSource, allRecords, SKU, successDest )
{
// Close parent <input>
Response.Write(">");
SetupMSCommerce( successDest );
Response.Write( "<input type=\"hidden\" name=\"SKU\" value=\"" + SKU + "\">" );
// Protect original close of parent <input>
Response.Write( "<" );
Response.Write( "wbr" );
}
//-----------------------------------------------------------------------------
// AddToCart
//-----------------------------------------------------------------------------
function AddToCart()
{
if( Request( "SKU" ).Count ){
SKU = Request( "SKU" );
if( UseFakeCommerce() ){
for( i = 0; i < fakeOrderForm.items.data.length; i++ ){
if( fakeOrderForm.items.data[i].SKU == SKU ){
fakeOrderForm.items.data[i].Quantity++;
break;
}
}
if( i == fakeOrderForm.items.data.length ){
fakeOrderForm.items.data[i] = new Object();
fakeOrderForm.items.data[i].SKU = SKU;
fakeOrderForm.items.data[i].Quantity = 1;
}
fakeOrderForm.UpdateBatch();
}else{
AssertOrderForm();
var found = false;
for( var i = 0; i < mscsOrderForm.items.Count; i++ ){
if( mscsOrderForm.items( i ).sku == SKU ){
mscsOrderForm.items( i ).quantity++;
found = true;
break;
}
}
if( !found ) mscsOrderForm.AddItem( SKU, 1, 0 );
UpdateOrderForm();
}
}
FinishMSCommerceAction();
}
//*****************************************************************************
// Purchase Now
//-----------------------------------------------------------------------------
// SetupPurchaseNow
//-----------------------------------------------------------------------------
function SetupPurchaseNow(contentSource, allRecords, successDest)
{
// Close parent <input>
Response.Write( ">" );
SetupMSCommerce( successDest );
// Protect original close of parent <input>
Response.Write( "<" );
Response.Write( "wbr" );
}
//-----------------------------------------------------------------------------
// PurchaseNow
//-----------------------------------------------------------------------------
function PurchaseNow()
{
if (UseFakeCommerce()) {
Session("FakeShoppingBasket") = "";
fakeOrderForm = null;
} else {
AssertOrderForm();
mscsOrderFormStorage.DeleteData(null, mscsOrderForm);
}
FinishMSCommerceAction();
}
// *****************************************************************************
// Update Totals
// -----------------------------------------------------------------------------
// SetupUpdateTotals
// -----------------------------------------------------------------------------
function SetupUpdateTotals( contentSource, allRecords )
{
// Close parent <input>
Response.Write( ">" );
SetupMSCommerce( "" );
// Protect original close of parent <input>
Response.Write( "<" );
Response.Write( "wbr" );
}
// -----------------------------------------------------------------------------
// UpdateTotals
// -----------------------------------------------------------------------------
function UpdateTotals()
{
var args = unescape( String( Request.Form )).split( "&" );
for( var i = 0; i < args.length; i++ ){
var qtyArray = 0;
var qty = 0;
var equal = args[i].indexOf( "=" );
if( args[i].indexOf( "Quantity[" ) == 0 ){
qtyArray = Number( args[i].substr( 9, equal - 10 ));
qty = Number( args[i].substr( equal + 1, args[i].length ));
}else if( args[i].indexOf( "Quantity" ) == 0 ){
qtyArray = 1;
qty = Number( args[i].substr( equal + 1, args[i].length ));
}else{
qtyArray = 0;
}
if( 0 < qtyArray ){
if( 0 < qty ){
if( UseFakeCommerce() ){
fakeOrderForm.items.data[qtyArray-1].Quantity = qty;
}else{
mscsOrderForm.items( qtyArray - 1 ).Quantity = qty;
}
}else{
if( UseFakeCommerce() ){
fakeOrderForm.items.data[qtyArray-1].deleted = true;
}else{
mscsOrderForm.items( qtyArray - 1 ).Quantity = 0;
}
}
}
}
if( UseFakeCommerce() ){
fakeOrderForm.UpdateBatch();
}else{
for( var i = mscsOrderForm.items.Count - 1; 0 <= i; i-- ){
if( mscsOrderForm.items( i ).quantity == 0 ){
mscsOrderForm.items.Delete( i );
}
}
UpdateOrderForm();
}
FinishMSCommerceAction();
}
// *****************************************************************************
// Dispatch
//
// if( 0 <= String( Request.ServerVariables( "PATH_TRANSLATED" )).indexOf( "mscommerce.actions5.asp" )){
// var orderForm = GetOrderForm( "Adobe" );
//
// if(( 0 < Request( "$AddToCart" ).Count )||( 0 < Request( "$AddToCart.x" ).Count )){
// AddToCart();
//
// }else if(( 0 < Request( "$PurchaseNow" ).Count )||( 0 < Request( "$PurchaseNow.x" ).Count )){
// PurchaseNow();
// }else if(( 0 < Request( "$UpdateTotals" ).Count )||( 0 < Request( "$UpdateTotals.x" ).Count )){
// UpdateTotals();
// }
// }
//
</SCRIPT>
<SCRIPT runat="server" language="VBScript">
' TODO: port to Jscript above.
' *****************************************************************************
' Dispatch
if InStr(Request.ServerVariables("PATH_TRANSLATED"), "mscommerce.actions5.asp") then
set orderForm = GetOrderForm( "" )
if Request("$AddToCart").Count > 0 or Request("$AddToCart.x").Count > 0 then
AddToCart
elseif Request("$PurchaseNow").Count > 0 or Request("$PurchaseNow.x").Count > 0 then
PurchaseNow
elseif Request("$UpdateTotals").Count > 0 or Request("$UpdateTotals.x").Count > 0 then
UpdateTotals
else ' default action
UpdateTotals
end if
end if
</SCRIPT>